<template>
  <div>
    <div id="app">
      <div class="container">
        <div class="row">
          <!-- 展示用户列表 -->
          <div
            v-show="info.users.length"
            class="card"
            v-for="item in info.users"
            :key="item.id"
          >
            <a
              :href="item.html_url"
              target="_blank"
            >
              <img
                :src="item.avatar_url"
                style='width: 100px'
              />
            </a>
            <p class="card-text">{{ item.login }}</p>
          </div>
          <!-- 展示欢迎词 -->
          <h1 v-show="info.isFirst">欢迎使用！</h1>
          <!-- 展示加载中 -->
          <h1 v-show="info.isLoading">加载中......</h1>
          <!-- 展示错误信息 -->
          <h1 v-show="info.errMsg">{{ info.errMsg }}</h1>
          <!-- 展示暂无数据 -->
          <h1 v-show="!info.isLoading && !info.isFirst && info.users.length === 0">暂无数据</h1>
        </div>
      </div>
    </div>
  </div>
</template>

<script>
export default {
  name: "List",
  data() {
    return {
      info: {
        isFirst: true,
        isLoading: false,
        errMsg: '',
        users: [],
      }
    }
  },
  mounted() {
    this.$bus.$on('updateListData', (data) => {
      this.info = { ...this.info, ...data }
    })
  },
  beforeDestroy() {
    this.$off('updateListData')
  },
}
</script>

<style>
.album {
  min-height: 50rem; /* Can be removed; just added for demo purposes */
  padding-top: 3rem;
  padding-bottom: 3rem;
  background-color: #f7f7f7;
}

.card {
  float: left;
  width: 33.333%;
  padding: 0.75rem;
  margin-bottom: 2rem;
  border: 1px solid #efefef;
  text-align: center;
}

.card > img {
  margin-bottom: 0.75rem;
  border-radius: 100px;
}

.card-text {
  font-size: 85%;
}
</style>